package site.marqstree.smartbutler.ui;

import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.Toast;

import com.kymjs.rxvolley.RxVolley;
import com.kymjs.rxvolley.client.HttpCallback;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.OnClick;
import site.marqstree.smartbutler.R;
import site.marqstree.smartbutler.adapter.CourierAdapter;
import site.marqstree.smartbutler.entity.CourierData;
import site.marqstree.smartbutler.util.L;
import site.marqstree.smartbutler.util.StaticClass;

/*
 * 项目名: SmartButler
 * 包名: site.marqstree.smartbutler.ui
 * 文件名: CourierActivity
 * 创建者: marqstree
 * 创建时间: 2020/1/4 17:12
 * 描述: TODO
 */
public class CourierActivity extends BaseActivity {

    @BindView(R.id.et_name)
    EditText etName;
    @BindView(R.id.et_number)
    EditText etNumber;
    @BindView(R.id.btn_get_courier)
    Button btnGetCourier;
    @BindView(R.id.mListView)
    ListView mListView;
    private List<CourierData> mList = new ArrayList<>();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_courier);
        ButterKnife.bind(this);

    }

    @OnClick(R.id.btn_get_courier)
    public void onViewClicked(View v) {
        switch (v.getId()) {
            case R.id.btn_get_courier:
                /**
                 * 1.获取输入框的内容
                 * 2.判断是否为空
                 * 3.拿到数据去请求数据（Json）
                 * 4.解析Json
                 * 5.listview适配器
                 * 6.实体类（item）
                 * 7.设置数据/显示效果
                 */

                //1.获取输入框的内容
                String name = etName.getText().toString().trim();
                String number = etNumber.getText().toString().trim();

                //判断是否为空
                if (TextUtils.isEmpty(name) || TextUtils.isEmpty(number))
                    Toast.makeText(this, getString(R.string.text_tost_empty), Toast.LENGTH_SHORT)
                            .show();

                //拼接的url
                String url = "http://v.juhe.cn/exp/index?key=" + StaticClass.COURIER_KEY
                        + "&com=" + name + "&no=" + number;
                //拿到数据去请求数据（Json）
                RxVolley.get(url, new HttpCallback() {
                    @Override
                    public void onSuccess(String t) {
                        //Toast.makeText(CourierActivity.this, t, Toast.LENGTH_SHORT).show();
                        L.i("Courier:" + t);
                        //4.解析Json
                        parsingJson(t);
                    }
                });
                break;
        }
    }

    //解析数据
    private void parsingJson(String t) {
        try {
            JSONObject jsonObject = new JSONObject(t);
            JSONObject jsonResult = jsonObject.getJSONObject("result");
            JSONArray jsonArray = jsonResult.getJSONArray("list");
            for (int i = 0; i < jsonArray.length(); i++) {
                JSONObject json = (JSONObject) jsonArray.get(i);

                CourierData data = new CourierData();
                data.setRemark(json.getString("remark"));
                data.setZone(json.getString("zone"));
                data.setDatetime(json.getString("datetime"));
                mList.add(data);
            }
            //倒序
            Collections.reverse(mList);

            //给ListView绑定数据和条目View
            CourierAdapter adapter = new CourierAdapter(this,mList);
            mListView.setAdapter(adapter);
        } catch (JSONException e) {
            e.printStackTrace();
        }
    }
}
